博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iPad播放网页视频(h5 video)失败的处理方法(Django网站)
阅读量:2432 次
发布时间:2019-05-10

本文共 1479 字,大约阅读时间需要 4 分钟。

在Android/Windows平台下,静态资源+h5可以毫无压力的播放视频,例如下面的代码

但是到了iPhone/iPad下,使用单纯的js+html等静态页面,是行不通的,需要增加一些头部信息。无奈执行,搭建了个Django环境处理,写法如下:

def video_player( request ):    req_video_name = request.GET["name"]    return render(request,"video_player.html", {
'media': req_video_name})def video_download( request ): const_size = 1000000 req_video = request.GET["name"] try: path = os.path.abspath(os.path.dirname(__file__)).replace('\\', '/') video_path = path + "/static/class/" + req_video with open(video_path,"rb") as f: HTTP_RANGE = request.META['HTTP_RANGE'].split('-') op = int(HTTP_RANGE[0][6:]) size = os.path.getsize(video_path) if HTTP_RANGE[1]=='': ed = min(size-1, op+const_size-1) else: ed = min(int(HTTP_RANGE[1]), op+const_size-1) s = f.read()[op:ed+1] response = HttpResponse(s, content_type='video/mp4') response.status_code = 206 response['Accept-Ranges'] = 'bytes' response['Content-Length'] = ed-op+1 response['Content-Range'] = 'bytes %s-%s/%s' % (op, ed, size) return response except Exception as e: logger.info(str(e))

video_player.html

{%load static%}    
odeYe

最关键的还算video_download方法,http请求需要得到视频的大小以及播放过程中,每块的大小。为啥ios需要这么弄,我也不知道…感觉让开发者去处理,很烦啊,为啥平台自己不去干这些活呢?

ios上播放效果如下

在这里插入图片描述
ps:朋友给的mp4,自己处理了一下,给孩子弄个资源网站,供学习娱乐使用。对资源感兴趣的可以私聊…

转载地址:http://hmvmb.baihongyu.com/

你可能感兴趣的文章
shell 脚本部署项目
查看>>
spring cloud zuul网关上传大文件
查看>>
springboot+mybatis日志显示SQL
查看>>
工作流中文乱码问题解决
查看>>
maven打包本地依赖包
查看>>
spring boot jpa 实现拦截器
查看>>
jenkins + maven+ gitlab 自动化部署
查看>>
Pull Request流程
查看>>
Lambda 表达式
查看>>
函数式数据处理(一)--流
查看>>
java 流使用
查看>>
java 用流收集数据
查看>>
java并行流
查看>>
CompletableFuture 组合式异步编程
查看>>
mysql查询某一个字段是否包含中文字符
查看>>
Java中equals和==的区别
查看>>
JVM内存管理及GC机制
查看>>
Java:按值传递还是按引用传递详细解说
查看>>
Java中Synchronized的用法
查看>>
阻塞队列
查看>>